/*
  自幂数判断
 【问题描述】
    自幂数是指，一个N位数，满足各位数字N次方之和是本身。例如，
      153 是 3位数，其每位数的 3 次方之和，1*1*1 + 5*5*5 + 3*3*3 = 153，
        因此 153 是自幂数；
      1634是 4 位数，其每位数的 4 次方之和，1*1*1*1 + 6*6*6*6 + 3*3*3*3 + 4*4*4*4 = 1634，
        因此 1634 是自幂数。
    现在，输入若干个正整数，请判断它们是否是自幂数。
 【输入描述】
    输入第一行是一个正整数M，表示有M个待判断的正整数。约定 1 ≤ M ≤ 100。
    从第 2 行开始的M行，每行一个待判断的正整数。约定这些正整数均小于 10*10*10*10*10*10*10*10。
 【输出描述】
    输出M行，如果对应的待判断正整数为自幂数，则输出英文大写字母'T'，否则输出英文大写字母'F'。
    提示：不需要等到所有输入结束在依次输出，可以输入一个数就判断一个数并输出，再输入下一个数。
 【样例输入 1】
    3
    152
    111
    153
 【样例输出 1】
    F
    F
    T
 【样例输入 2】
    5
    8208
    548834
    88593477
    12345
    5432
 【样例输出 2】
    T
    T
    T
    F
    F
*/
#include <iostream>

using namespace std;

bool a1(int num){
    int n;
    int x;

    if (num >= 1 && num <10) {       // 1位数
        return true;
    } else if (num > 9 && num <= 99) {    // 2位数
        n = num % 10;
        x = n * n;
        n = num / 10;
        x = x + n * n;
        if (x == num) {
           return true;
        } else {
           return false;
        }
    } else if (num >= 100 && num < 1000) {  // 3位数
        n = num % 10;
        x = n * n * n;
        n = num / 10 % 10;
        x = x + n * n * n;
        n = num /100;
        x = x + n * n * n;
        // cout << "x: " << x << ", num: " << num << endl;
        if (x == num) {
            return true;
        } else {
            return false;
        }
    } else if (num >= 1000 && num <= 9999) {   // 4位数
        n = num % 10;
        x = n * n * n * n;
        n = num / 10 % 10;
        x = x + n * n * n * n;
        n = num /100 % 10;
        x = x + n * n * n * n;
        n = num / 1000;
        x = x + n * n * n * n;
        if (x == num) {
            return true;
        } else {
            return false;
        }
    }else if (num >= 10000 && num <= 99999){   // 5位数
        n = num % 10;
        x = n * n * n * n * n;
        n = num / 10 % 10;
        x = x + n * n * n * n * n;
        n = num /100 % 10;
        x = x + n * n * n * n * n;
        n = num / 1000 % 10;
        x = x + n * n * n * n * n;
        n = num / 10000;
        x = x + n * n * n * n * n;
        if (x == num) {
            return true;
        } else {
            return false;
        }
    } else if (num >= 100000 && num <= 999999) {  // 6位数
        n = num % 10;
        x = n * n * n * n * n * n;
        n = num / 10 % 10;
        x = x + n * n * n * n * n * n;
        n = num /100 % 10;
        x = x + n * n * n * n * n * n;
        n = num / 1000 % 10;
        x = x + n * n * n * n * n * n;
        n = num / 10000 % 10;
        x = x + n * n * n * n * n * n;
        n = num / 100000;
        x = x + n * n * n * n * n * n;
        if (x == num) {
           return true;
        } else {
           return false;
        }
    } else if (num >= 1000000 && num <= 9999999) { // 7位数
        n = num % 10;
        x = n * n * n * n * n * n * n;
        n = num / 10 % 10;
        x = x + n * n * n * n * n * n * n;
        n = num /100 % 10;
        x = x + n * n * n * n * n * n * n;
        n = num / 1000 % 10;
        x = x + n * n * n * n * n * n * n;
        n = num / 10000 % 10;
        x = x + n * n * n * n * n * n * n;
        n = num / 100000 % 10;
        x = x + n * n * n * n * n * n * n;
        n = num / 1000000;
        x = x + n * n * n * n * n * n * n;
        if (x == num) {
            return true;
        } else {
            return false;
        }
    }  else { //8位数
        n = num % 10;
        x = n * n * n * n * n * n * n * n;
        n = num / 10 % 10;
        x = x + n * n * n * n * n * n * n * n;
        n = num /100 % 10;
        x = x + n * n * n * n * n * n * n * n;
        n = num / 1000 % 10;
        x = x + n * n * n * n * n * n * n * n;
        n = num / 10000 % 10;
        x = x + n * n * n * n * n * n * n * n;
        n = num / 100000 % 10;
        x = x + n * n * n * n * n * n * n * n;
        n = num / 1000000 % 10;
        x = x + n * n * n * n * n * n * n * n;
        n = num / 10000000;
        x = x + n * n * n * n * n * n * n * n;
        if (x == num) {
            return true;
        } else {
            return false;
        }
    }
}

bool a2(int num) {
    int i = 0;
    int x = 0;
    int y;
    int n = num;

    // 求出num的十进制位数
    while (n > 0) {
        n = n / 10;
        i = i + 1;
    }

    // 求出num的各位十进制位数上的数的i次幂之和
    n = num ;
    int l;
    for (int j = 1; j <= i; j++) {
        y = n % 10;
        l = 1;
        for (int k = 1; k <= i ; k++) {
            l = l * y;
        }
        x = x + l;
        n = n / 10;
    }

    // 判断num是否是自幂数
    if (x == num ) {
        return true;
    } else {
        return false;
    }
}

int main() {
    int n;
    int x;
    int a[100] = {};

    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> x;
        a[i] = x;
    }

    for (int j = 0; j < n; j++) {
        if (a2(a[j])) {
            cout << "T" << endl;
        } else {
            cout << "F" << endl;
        }
    }

    return 0;
}